#pragma once

#include "../../renderer/VertexArray.h"

namespace lazy {

    class GLVertexArray : public VertexArray  {
    public:
        GLVertexArray();
        ~GLVertexArray() override;
        void Bind() override;
        void Unbind() override;
        void AddVertexBuffer(const std::shared_ptr<VertexBuffer> &vertexBuffer) override;
        void SetIndexBuffer(const std::shared_ptr<IndexBuffer> &indexBuffer) override;

        const std::vector<std::shared_ptr<VertexBuffer>> &GetVertexBuffers() const override;
        const std::shared_ptr<IndexBuffer> &GetIndexBuffer() const override;

    private:
        uint32_t m_ArrayID;
        std::vector<std::shared_ptr<VertexBuffer>> m_VertexBuffers;
        std::shared_ptr<IndexBuffer> m_IndexBuffer;
    };

} // lazy
